517 IF RB$(I)=RE$(I) THEN PRINT RB$(I) ELSE PRINT RB$(I)+"-"+RE$(I)
518 NEXT
520 PRINT "-------------
525 INPUT "HIT RETURN TO CONTINUE.",DUM$ : GOTO 340
530 ' BLOCK TO GET SPECS ------
531 INPUT "ENTER NAME OF FILE CONTAINING SPECS : ",SPECFILE$
533 RANGECTR=0
540 FLAG=0 : OPEN "I",#3,SPECFILE$
542 IF FLAG=1 THEN PRINT "SPEC FILE NOT FOUND ON DRIVE SPECIFIED." : INPUT "HIT JUST RETURN TO TRY AGAIN. HIT 'X' THEN HIT RETURN TO CANCEL",DUM$ : IF LEN(DUM$)>0 THEN 350 ELSE 530
550 WHILE NOT EOF(3) : RANGECTR=RANGECTR+1 : INPUT#3,RB$(RANGECTR),RE$(RANGECTR) : WEND
560 CLOSE#3 : PRINT : PRINT RANGECTR;" RANGE SPECS INPUT"
561 GOSUB 773 : GOTO 340
565 'END BLOCK -----------------
570 RANGECTR=1
575 PRINT
580 PRINT "ENTER STATE-COUNTY CODES. THREE FORMS ARE VALID."
770 IF RANGECTR=1 THEN GOSUB 790 : PRINT RANGECTR;" AREA CODES SELECTED." ELSE PRINT "FORM 3 NOT ALLOWED IN COMBINATION WITH OTHER FORMS. LAST ENTRY IGNORED." : GOTO 670
771 GOSUB 773 : GOTO 340
773 PRINT "THE AREA CODES SELECTED ARE NOW THE CURRENT SPECIFICATIONS."
775 INPUT "HIT RETURN TO CONTINUE.",DUM$
776 PRINT
779 RETURN
780 PRINT "FORM 3 NOT VALID IN COMBINATION WITH OTHER REQUESTS. REQUEST DENIED." : INPUT "HIT RETURN TO CONTINUE.",DUM$ : GOTO 670
790 'SUB TO USE WILD CHARS (?) TO COLLECT SELECTION SET -----------------------
795 RANGECTR=0
800 WHILE NOT EOF(1)
810 GOSUB 1710
815 IF MID$(DUM$,1,1)<>"?" THEN IF MID$(ID$,1,1)>MID$(DUM$,1,1) THEN 865 ELSE IF MID$(DUM$,2,1)<>"?" AND MID$(ID$,1,1)=MID$(DUM$,1,1) AND MID$(ID$,2,1)>MID$(DUM$,2,1) THEN 865 '-- 2 EXIT CONDITIONS --
820 FOR I=1 TO LEN(DUM$)
830 IF MID$(DUM$,I,1)="?" THEN 840 ELSE IF MID$(DUM$,I,1)=MID$(ID$,I,1) THEN 840 ELSE 860
873 IF RB$(RANGECTR)>RE$(RANGECTR) THEN PRINT "LAST ENTRY REJECTED. RANGE START>RANGE END." : INPUT "HIT RETURN TO CONTINUE.",DUM$ : GOTO 670
875 IF RANGECTR>1 THEN IF RB$(RANGECTR)<RE$(RANGECTR-1) THEN PRINT "LAST ENTRY REJECTED. RANGE START<PRECEEDING RANGE END." : INPUT "HIT RETURN TO CONTINUE.",DUM$ : GOTO 670
877 GOTO 742 ' END BLOCK
920 'SUB TO SQUEEZE BLANKS FROM DUM$ -------------
2787 PRINT "COPIES OF MATCHING RECORDS FROM THE GEOGRAPHIC REFERENCE FILE WILL BECOME
2788 PRINT "THE FIRST PART OF EACH OUTPUT RECORD. COPIES OF THE DATA RECORDS
2789 PRINT "EXCLUDING THE STATE-COUNTY CODES WILL BECOME THE SECOND PART OF EACH
2790 PRINT "OUTPUT RECORD.
2791 PRINT '---------------------------
2793 INPUT "ENTER NAME OF DATA FILE : ",FILE$
2795 IF INSTR(FILE$,".") THEN GOSUB 3280 : GOTO 2790
2800 FLAG=0 : OPEN "I",#2,FILE$+".TXT"
2810 IF FLAG=1 THEN GOSUB 3190 : GOTO 2790
2812 INPUT "ENTER NAME OF OUTPUT FILE : ",OUTFILE$
2814 IF INSTR(OUTFILE$,".") THEN GOSUB 3280 : GOTO 2812
2816 OPEN "O",#3,OUTFILE$
2820 PRINT "INSERT DISK CONTAINING GEOGRAPHIC REFERENCE FILE INTO DRIVE A.
2830 INPUT "HIT RETURN WHEN READY.",DUM$
2835 INPUT "ENTER NAME OF GEOGRAPHIC REFERENCE FILE : ",NAMEFILE$
2837 IF INSTR(NAMEFILE$,".") THEN PRINT "DO NOT USE EXTENSION." : INPUT "HIT RETURN TO CONTINUE.",DUM$ : GOTO 2835
2840 FLAG=0 : OPEN "I",#1,NAMEFILE$+".TXT"
2842 IF FLAG=1 THEN PRINT "FILE NOT FOUND ON DRIVE INDICATED." : INPUT "HIT RETURN TO CONTINUE.",DUM$ : GOTO 2835
2850 CTR=0
2860 WHILE NOT (EOF(1) OR EOF(2))
2870 LINE INPUT#2,B$
2880 X=INSTR(B$,",")-1
2890 A$=" "
2900 WHILE LEFT$(A$,X)<>LEFT$(B$,X)
2910 LINE INPUT#1,A$
2920 WEND
2930 PRINT#3,A$+MID$(B$,X+1)
2940 CTR=CTR+1
2950 PRINT "MATCH ";CTR;LEFT$(B$,X)
2960 WEND
2970 IF EOF(1) AND NOT EOF(2) THEN PRINT "ERROR. EOF ON GEOREF FILE WITH RECORDS REMAINING ON DATA FILE." : PRINT "OUTPUT FILE DELETED." : KILL OUTFILE$ : INPUT "HIT RETURN TO CONTINUE.",DUM$ : GOTO 40
2995 CLOSE
2997 PRINT "NAMES AND CODES ADDED TO ";CTR;" RECORDS"
2998 INPUT "HIT RETURN TO CONTINUE.",DUM$
2999 GOTO 40 '------
3000 '--- ERROR ROUTINE ----------
3010 IF ERR<>0 THEN PRINT "ERROR ";ERR : FLAG=1
3012 IF ERR=22 THEN 3020
3013 IF ERR=53 THEN 3020
3018 ON ERROR GOTO 0
3020 RESUME NEXT '--------------
3030 'SUB NUMERIC(DUM$) FLAG=IF NUMERIC THEN 0 ELSE 1
3040 FLAG=0 : IF LEN(DUM$)=0 THEN FLAG=1 : GOTO 3090
3050 FOR X=1 TO LEN(DUM$)
3060 TEMP=ASC(MID$(DUM$,X,1))
3070 IF TEMP<ASC("0") OR TEMP>ASC("9") THEN FLAG=1 : GOTO 3090
3080 NEXT
3090 RETURN '----------
3100 'SUB TO CHECK YORN$ (YES/NO RESPONSE) FLAG=IF INVALID -1, YES 0, NO 1
3110 FLAG=0
3120 IF NOT (INSTR(YORN$,"Y")>0 OR INSTR(YORN$,"y")>0 OR INSTR(YORN$,"N")>0 OR INSTR(YORN$,"n")>0) THEN FLAG=-1 : GOTO 3140
3130 IF INSTR(YORN$,"N") OR INSTR(YORN$,"n") THEN FLAG=1
3140 RETURN '----------
3150 'INPUT ERROR MESSAGE
3160 INPUT "INPUT ERROR. HIT RETURN TO CONTINUE.",DUM$
3170 RETURN '-----------
3180 '---- MESSAGE SUBS -------------
3190 PRINT "DATA FILE NOT AVAILABLE ON DRIVE INDICATED.
3200 INPUT "HIT RETURN TO TRY AGAIN. HIT 'X' THEN RETURN TO CANCEL REQUEST.",DUM$
3210 IF LEN(DUM$)>0 THEN 40
3220 RETURN '--------
3230 'SUB
3240 PRINT "DICTIONARY FILE NOT FOUND ON DRIVE INDICATED
3250 INPUT "HIT RETURN TO TRY AGAIN. HIT 'X' THEN RETURN TO CANCEL REQUEST.",DUM$
3260 IF LEN(DUM$)>0 THEN 40
3270 RETURN '--------
3280 PRINT "DO NOT USE EXTENSION.
3290 INPUT "HIT RETURN TO CONTINUE.",DUM$
3300 RETURN '--------
3310 IF ERR=70 THEN PRINT "DISK TO RECEIVE OUTPUT FILE IS WRITE PROTECTED." : INPUT "HIT RETURN TO CONTINUE.",DUM$